package com.mantisframework.core.base.service;

import java.io.Serializable;
import java.util.List;

import com.mantisframework.core.page.PageBean;
/**
 * 功能：基础 Service
 * 作者：马东东
 * 时间:2010-3-24
 * @param <T>
 */
public interface IBaseService<T>{
	
    /**
     * 保存方法
     * @param   pojo pojo实例
     * @return
     */
	public boolean save(T pojo);
	/**
	 * 删除方法
	 * @param pojo  pojo实例
	 * @return
	 */
	public boolean delete(T pojo);
	/**
	 * 修改方法
	 * @param pojo pojo实例
	 * @return
	 */
	public boolean modify(T pojo);
	/**
	 * 更新方法
	* @param pojo
	* @param id
	* @return
	*/
	public boolean saveOrUpdate(T pojo, Serializable id);
	/**
	 * 单个实例查询
	 * @param id 标识符
	 * @return
	 */
	public T getPojoById(Serializable id);
	/**
	 * 无条件获得pojo翻页记录
	 * @param pojo   pojo实例
	 * @param pagebean  辅助bean
	 * @return
	 */
	public PageBean getPojoAll(T pojo,PageBean pagebean);
	/**
	 * 有条件翻页查询数据
	 * @param pojo  pojo
	 * @param condition  翻页条件
	 * @param pagebean 辅助bean
	 * @return
	 */
	public PageBean getPojoByCondition(T pojo,String condition,PageBean pagebean);
	/**
	 * 无条件获得pojo翻页记录
	 * @param pojo   pojo实例
	 * @param currentPage  当前页
	 * @param pageSize     翻页单位
	 * @return
	 */
	public PageBean getPojoAll(T pojo,Integer currentPage,Integer pageSize);
	/**
	 * 有条件翻页查询数据
	 * @param pojo  pojo
	 * @param condition  翻页条件
	 * @param currentPage 当亲页
	 * @param pageSize 翻页单位
	 * @return
	 */
	public PageBean getPojoByCondition(T pojo,String condition,Integer currentPage,Integer pageSize);
	/**
	 * 无条件获得pojo所有记录
	 * @param pojo  pojo实例
	 * @return
	 */
	public List<T> getPojoAll(T pojo,String condition);
}
